Method and device for emulating control and/or regulating functions of a control or regulating device

ABSTRACT

A method and an emulation device ( 1 ) are described for emulating control and/or regulating functions of a control or regulating unit ( 2 ), in particular of a motor vehicle. For emulation, the functions are swapped out into an external emulation computer ( 3 ), a data circuit ( 9 ) being produced before the beginning of the emulation via a software interface ( 12 ) of the emulation computer ( 3 ) and a software interface ( 13 ) of the control/regulating unit ( 2 ). In order to significantly accelerate the development and programming of new control/regulating functions of the control/regulating unit ( 2 ), the software interfaces ( 12, 13 ) are configured for the emulation of different control/regulating functions before the beginning of the emulation without changing the software.

BACKGROUND INFORMATION

[0001] The present invention relates to a method of emulating control and/or regulating functions of a control and/or regulating unit, in particular of a motor vehicle. The emulation is performed by swapping out the functions into an external emulation computer. A data circuit is produced before the beginning of the emulation via a software interface of the emulation computer and a software interface of the control/regulating unit.

[0002] The present invention also relates to an emulation device, which includes a control or regulating unit, in particular of a motor vehicle, and an external emulation computer. The emulation device is used for emulating control and/or regulating functions of the control/regulating unit by swapping out the functions into the emulation computer. The control/regulating unit and the emulation computer each have a software interface and the control/regulating unit and the emulation computer are linked to one another via a data circuit which may be produced via the software interfaces before the beginning of the emulation.

[0003] Furthermore, the present invention relates to a memory element for a control or regulating unit of a motor vehicle. A computer program is stored on the memory element which is executable on a computing element, in particular on a microprocessor. The memory element is implemented in particular as a read-only memory, as a random access memory, or as a flash memory. Finally, the present invention also relates to a computer program.

[0004] Emulation devices for emulating control/regulating functions of a control/regulating unit are used as prototyping tools in the development and/or the software implementation of new control/regulating functions. Such an emulation device is also referred to as a bypass. With the aid of the bypass, functions of an arbitrary control/regulating unit (ECU, electronic control unit) may be swapped out into an external emulation computer. The communication between the control/regulating unit and the emulation computer occurs via a data circuit, which is implemented, for example, as a bus line, in particular as a controller area network (CAN) bus line. For the purpose of communication, a software interface is provided in both the control/regulating unit and the emulation computer.

[0005] A method of emulating functions of a control unit of the type initially described is known from German Patent Application 33 18 410 A1. New control/regulating programs may be developed easily in higher programming languages on high-performance emulation computers, through which rapid development of the software functions is provided (rapid prototyping). To test the newly programmed functions, the emulation computer is linked via the data circuit to a control/regulating unit for which the functions were developed. The new functions are emulated on the emulation computer while the remaining parts of the control/regulating program run on the control/regulating unit. Therefore, a standard control unit may be used even in the development phase of new software functions, so that experiments with newly programmed functions run especially close to the standard way.

[0006] Before the beginning of an emulation, the data circuit between the emulation computer and the control unit is produced via the software interfaces. During an initialization phase of the emulation computer, it transmits specific data of the functions to be emulated in accordance with a permanently preselected transmission protocol. This data is stored in tables provided for this purpose in the control unit. In bypass operation, the communication from the control unit to the emulation computer is initiated by fixed trigger events. The type of communication between the control unit and the emulation computer is defined by the data stored in the tables.

[0007] An emulation device of the type initially cited is known from German Patent 39 17 979 C2. In this case, a bypass is described which uses a standardized hardware interface on a control unit for producing the data circuit. During bypass operation, the control unit accesses either a read/write memory of the emulation device, in which the function to be emulated is stored, or a read memory of the control unit, on which the actual program execution of the control/regulating program is stored. After a trigger event is initiated, the control/regulating program is no longer executed on the microprocessor of the control/regulating unit, but rather this switches over to the read/write memory of the emulation device and executes the function to be emulated.

[0008] In the present application, reference is expressly made to German Patent Application 33 18 410 A1 and German Patent 39 17 979 C2.

[0009] In the methods and devices known from the related art for emulating functions of a control/regulating unit, it is disadvantageous that the interfaces of the control/regulating unit and the emulation computer are aligned to the functions to be emulated and are defined correspondingly (either through fixed programming of the software interfaces or through a fixed hardware configuration of the hardware interfaces). In particular, the protocol for data transmission between the emulation computer and the control/regulating unit is permanently preselected during bypass operation. Therefore, for example, the size of the tables, the word length of the transmitted configuration data, the timing code for the data transmission, and statements about whether operation occurs with or without monitoring of the data circuit may only be adjusted to new control/regulating functions to be emulated by complicated reprogramming of the software interfaces. The possibilities of rapid prototyping are significantly restricted by these necessary changes of the software at the interfaces.

[0010] It is therefore the object of the present invention to provide a possibility for significantly accelerating the development and programming of new control/regulating functions of a control/regulating unit.

[0011] To achieve this object, the present invention suggests, on the basis of the method of emulating control/regulating functions of the type initially cited, that the software interfaces be configured for the emulation of different control/regulating functions before the beginning of the emulation without changing the software.

[0012] According to the present invention, the software interfaces are therefore freely programmable, so that a protocol for data transmission between the control/regulating unit and the emulation computer may be adjusted to the particular control/regulating functions to be emulated. The adjustment is performed without reprogramming of the software interfaces. In this way, new possibilities open up within the framework of rapid prototyping for the development and programming of new control/regulating functions of a control/regulating unit.

[0013] To configure the software interfaces, configuration data is transmitted from the emulation computer to the control/regulating unit via the data circuit before the emulation of control/regulating functions. The configuration data includes, for example, the size of the tables in which data for defining the functions to be emulated is stored, the word lengths of the data, the timing code in which the control/regulating program runs, and statements about whether or not the data circuit will be monitored during bypass operation. The timing code may either be permanently preselected or event-oriented. The configuration data is used for specifying the transmission protocol for the data transmission and for configuring the software interfaces.

[0014] According to an advantageous refinement of the present invention, software interfaces are configured for the emulation of different control/regulating functions from a preselectable set of measured and intervention variables. Therefore, the data suitable for the current function to be emulated is selected from an already existing library having various configuration data and the software interfaces are programmed accordingly.

[0015] According to a preferred embodiment of the present invention, the resources for the data circuit and the resources of a read/write memory of the control/regulating unit are dynamically managed in accordance with the interface configuration. Therefore, a type of allocation layer is introduced, which redirects the accesses to the data stored in the tables to the appropriate table and the appropriate table position. By defining this allocation layer before the beginning of the emulation, the size of the tables and the word lengths of the data stored therein may be selected variably and/or adjusted to the interface configuration.

[0016] According to another advantageous refinement of the present invention, the configuration is defined on the emulation computer and the configuration data is transmitted to the control/regulating unit via the data circuit before the beginning of the emulation. How the software interfaces of the emulation computer and the control/regulating unit are to be configured is also defined in the course of programming the function to be emulated on the emulation computer in a higher programming language. Before the beginning of the emulation, the configuration data is then transmitted to the control/regulating unit.

[0017] The configuration data is advantageously transmitted to the control/regulating unit during an initialization phase of the emulation computer.

[0018] As a further achievement of the object of the present invention, it is suggested, on the basis of the emulation device of the type initially cited, that the software interfaces be configurable for the emulation of different control/regulating functions before the beginning of the emulation, without changing the software.

[0019] According to an advantageous refinement of the present invention, it is suggested that the data circuit is implemented as a serial bus system, in particular as a controller area network (CAN) bus.

[0020] The implementation of the method according to the present invention in the form of a memory element which is provided for a control/regulating unit of a motor vehicle is of particular significance. A computer program is stored on the memory element which is executable on a computing element, in particular on a microprocessor of the control/regulating unit, and is suitable for carrying out the method according to the present invention. In this case, the present invention is therefore implemented by a computer program stored on a memory element, so that this memory element provided with the computer program represents the present invention in the same way as the method which the computer program is suitable for executing. An electrical memory medium may, in particular, be used as a memory element, for example, a read-only memory, a random access memory, or a flash memory.

[0021] The present invention also relates to a computer program which is suitable for carrying out the method according to the present invention when it is executed on a computing element, in particular on a microprocessor. In particular, it is preferable in this case if the computer is stored on a memory element, in particular on a flash memory.

DRAWING

[0022] Further features, possible applications, and advantages of the present invention result from the following description of exemplary embodiments of the present invention, which are illustrated in the drawing. In this case, all features described or illustrated form the object of the present invention by themselves or in any arbitrary combination, independently of their wording in the patent claims or what they are based on and independently of their formulation or illustration in the description or in the drawing.

[0023]FIG. 1 shows a block diagram of an emulation device according to the present invention according to a preferred embodiment.

[0024]FIG. 2 shows a flow chart of an emulation method according to the present invention according to a preferred embodiment.

DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

[0025] In FIG. 1, an emulation device according to the present invention is indicated as a whole with reference number 1. Emulation device 1 includes a control or regulating unit 2 of a motor vehicle and an external emulation computer 3. Emulation device 1 is used as a prototyping tool for rapid prototyping of software. Control/regulating unit 2 is used for control/regulation of specific functions of a motor vehicle, for example, the internal combustion engine, the steering, the brakes, the transmission, and/or the road holding of the motor vehicle. Control/regulating unit 2 has a memory element 4, on which a control/regulating program is stored. Memory element 4 is implemented as a flash memory, for example. The control/regulating program is executable on a microprocessor 5. During the program execution, data is read out of and/or stored in a read/write memory 6. Control/regulating unit 2 fulfills the control/regulating task assigned to it by executing the control/regulating program.

[0026] Emulation computer 3 has a display screen 7 and alternatively further output devices and a keyboard 8 and alternatively further input devices. New or altered control/regulating functions of the control/regulating program are programmed on emulation computer 3. To test the newly programmed functions in bypass operation, emulation computer 3 is first connected to control/regulating unit 2 via a data circuit 9. Data circuit 9 is implemented as a controller area network (CAN) bus line.

[0027] During bypass operation, the control/regulating program is executed on control/regulating unit 2. As soon as a trigger event is initiated during the program execution, the control/regulating program function modeled in emulation computer 3 is called and executed. The emulation computer has a further memory element 10, on which the control/regulating function to be emulated is stored. To execute the function, emulation computer 3 has a microprocessor 10. Before or during the execution of the program function, data is read out of read/write memory 6 of control/regulating unit 2 via data circuit 9 and, after the program execution, stored in this memory.

[0028] After the execution of the program function in emulation computer 3, the execution of the control/regulating program in control/regulating unit 2 is returned to.

[0029] Alternatively, the regulating program in control/regulating unit 2 and the program function in emulation computer 3 may also run parallel to one another. In this way, a newly developed control/regulating program function may be executed on a standard control/regulating unit 2 even in the development phase, which allows testing which is especially close to standard.

[0030] A freely configurable software interface 12, 13 is implemented on both emulation computer 3 and control/regulating unit 2 for controlling and coordinating the communication between emulation computer 3 and control/regulating unit 2. Together with the programming of the control/regulating function, configuration data for configuring software interfaces 12, 13 is also developed. The configuration data suitable for the current function to be emulated may, for example, be taken from an existing library having different configuration data. Through the free configuration of software interfaces 12, 13, a protocol for the data transmission between control/regulating unit 2 and emulation computer 3 may be adjusted to the particular control/regulating functions to be emulated. Complicated reprogramming of the software interfaces to emulate different functions is no longer necessary.

[0031] The configuration data includes, for example, the size of tables in which data for defining the functions to be emulated is stored, the word lengths of the data, the timing code in which work is done, and statements about whether or not data circuit 9 will be monitored during bypass operation. The tables are stored in read/write memory 6. According to the present invention, the accesses to the data stored in the tables are redirected to the appropriate tables and the appropriate table positions using an allocation layer.

[0032] Before the beginning of the emulation of the newly programmed functions in emulation computer 3, the configuration data is transmitted to control/regulating unit 2 via data circuit 9 during an initialization phase of emulation computer 3, and software interfaces 12, 13 are configured accordingly. During the initialization, the hardware interfaces (CAN) are also initialized and/or configured in accordance with the configuration.

[0033] The method according to the present invention for bypass operation of a control/regulating unit 2 of a motor vehicle is described briefly in the following with reference to FIG. 2. The method begins in a function block 20. This is followed by initialization of emulation computer 3 in function block 21. In the course of the initialization, the configuration data is also transmitted to control/regulating unit 2. In a function block 22, software interfaces 12, 13 are then configured in accordance with the configuration data.

[0034] The execution of the control/regulating program in control/regulating unit 2 is then begun in a function block 23. The control/regulating program may also be started even before the interface initialization (function block 22). The calculation on emulation device 1 is started by a trigger. The trigger events are defined via the configuration of software interfaces 12, 13 in function block 22. After the execution of the control/regulating program and/or of the control/regulating function, control/regulating unit 2 and emulation computer 3 write the results in read/write memory 6.

[0035] In a query block 24, it is checked whether data is to be retrieved from read/write memory 6 during the program execution. If yes, data is retrieved from read/write memory 6 in function block 25. Subsequently, the execution of the control/regulating program in control/regulating unit 2 is returned to and query block 24 is branched to.

[0036] If there is no more data to be retrieved from read/write memory 6, it is checked in a query block 26 whether the control/regulating program has ended. If yes, it is ended in a function block 27. Otherwise, execution of the control/regulating program is continued in control/regulating unit 2 and query block 24 is branched to. 

What is claimed is:
 1. A method of emulating control and/or regulating functions of a control or regulating unit (2), in particular of a motor vehicle, by swapping out the functions into an external emulation computer (3), a data circuit (9) being produced before the beginning of the emulation via a software interface (12) of the emulation computer (3) and a software interface (13) of the control/regulating unit (2), wherein the software interfaces (12, 13) are configured for the emulation of different control/regulating functions before the beginning of the emulation without changing the software.
 2. The method as recited in claim 1, wherein the software interfaces (12, 13) are configured for the emulation of different control/regulating functions from a preselectable set of measured and intervention variables.
 3. The method as recited in claim 2, wherein the resources for the data circuit (9) and the resources of a read/write memory (6) of the control/regulating unit (2) are dynamically managed in accordance with the interface configurations.
 4. The method as recited in one of claims 1 through 3, wherein the configuration is defined on the emulation computer (3) and the configuration data is transmitted to the control/regulating unit (2) via the data circuit (9) before the beginning of the emulation.
 5. The method as recited in claim 4, wherein the configuration data is transmitted to the control/regulating unit (2) during an initialization phase of the emulation computer (3).
 6. An emulation device (1), comprising a control or regulating unit (2), in particular of a motor vehicle, and an external emulation computer (3), the emulation device (1) being used for emulating control and/or regulating functions of the control/regulating unit (2) by swapping out the functions into the emulation computer (3), the control/regulating unit (2) having a software interface (13) and the emulation computer (3) having a software interface (12), and the control/regulating unit (2) and the emulation computer (3) being linked to one another via a data circuit (9) which may be produced via the software interfaces (12, 13) before the beginning of the emulation, wherein the software interfaces (12, 13) are configurable for the emulation of different control/regulating functions before the beginning of the emulation, without changing the software.
 7. The emulation device (1) as recited in claim 6, wherein the data circuit (9) is implemented as a serial bus system, in particular as a controller area network (CAN) bus.
 8. A memory element (4), in particular a read-only memory, random access memory, or flash memory, for a control or regulating unit (2) of a motor vehicle, on which a computer program is stored, which is executable on a computing element, in particular on a microprocessor (5), and is suitable for carrying out a method as recited in one of claims 1 through
 5. 9. A computer program, wherein it is suitable for carrying out a method as recited in one of claims 1 through 5 when it runs on a computing element, in particular on a microprocessor (5).
 10. The computer program as recited in claim 9, wherein it is stored on a memory element (4), in particular on a flash memory. 